Sono solo un principiante nella codifica Swift. La mia idea è abbastanza semplice che sia un'app con due pulsanti. Quando cliccato, un campo di testo cambierà il suo testo. Nella Main.StoryBoard, aggiungo un campo di testo e due pulsanti. Nel file ViewController.swift. Scrivo così: importa UIKit class ViewController: UIViewController { @IBOutlet weak var textfield: UITextField! @IBOutlet pulsante var debole: UIButton! @IBOutlet weak var button2: UIButton! @IBAction func action1 (_ sender: UIButton) { textfield.text = "hai appena fatto clic sul pulsante1" } @IBAction func action2 (_ sender: UIButton) { textfield.text = "hai appena fatto clic su button2" } } Dovrebbe andare tutto bene. Tuttavia, viene visualizzato un errore che mostra: thread1: segnale SIGABRT nel file AppDelegate.swift riga: class AppDelegate: UIResponder, UIApplicationDelegate cosa c'è che non va nel mio codice?
2021-01-15 08:17:27
Per risolvere il problema, pulire prima il progetto e poi ricostruirlo. Per pulire il progetto, vai su MenuBar: Product -> Clean Quindi, per ricostruire il progetto, fai clic sul pulsante Esegui come al solito. | Ricevi un errore SIGABRT ogni volta che hai una presa scollegata. Fai clic sul controller della vista nello storyboard e vai alle connessioni nel pannello laterale (il simbolo della freccia). Verifica se hai una presa in più, un duplicato o uno in più non collegato. Se non è così, forse non hai collegato correttamente le tue prese al tuo codice. Ricorda solo che SIGABRT si verifica quando stai cercando di chiamare una presa (pulsante, vista, campo di testo, ecc.) Che non c'è. | Per me non era uno sfogo. Ho risolto il problema andando all'errore e leggendo cosa diceva. (Anche Noob ..) Questo era l'errore: E la soluzione era qui: Basta scorrere verso l'alto nell'output e l'errore verrà rivelato. | Un motivo comune per questo tipo di errore è che potresti aver cambiato il nome del tuo IBOutlet o IBAction, puoi semplicemente verificarlo andando al codice sorgente. Fare clic su main.storyboard e quindi selezionare Apri come e quindi seleziona il codice sorgente il codice sorgente si aprirà e poi controlla se c'è il nome dell'iboutlet o ibaction che hai cambiato, se c'è allora seleziona la parte ed eliminala e poi crea nuovamente iboutlet o ibaction. Questo dovrebbe risolvere il tuo problema | Nel mio caso non stavo ottenendo l'errore solo il crash in AppDelegate e ho dovuto deselezionare l'opzione successiva: OS_ACTIVITY_MODE quindi ho potuto ottenere il vero motivo del crash nel mio file .xib Spero che questo possa aiutare anche te :) | Ho avuto lo stesso problema. Ho creato un pulsante nello storyboard e l'ho collegato al ViewController, quindi in seguito ho eliminato il pulsante. Quindi la connessione era ancora lì, ma il pulsante no, e quindi ho ricevuto il tuo stesso errore. Aggiustare: Vai alla finestra di ispezione della connessione (la freccia nell'angolo in alto a destra, nello storyboard) ed elimina tutte le connessioni inutilizzate. | Se ti imbatti in questo in Xcode 10 dovrai pulire prima di compilare. In alternativa, passa al sistema di compilazione legacy. File -> Impostazioni area di lavoro ... -> Build System: Legacy Build System. | Nel mio caso non c'era alcun registro. Il mio errore è stato quello di inserire un controller di visualizzazione in uno stack di navigazione che faceva già parte dello stack di navigazione. | A volte succede anche quando la funzione deve essere eseguita solo nel thread principale, quindi puoi risolverlo assegnandolo al thread principale come segue: - DispatchQueue.main.async { il tuo codice qui } | Per me, questo errore era dovuto al fatto che avevo un passaggio di preparazione del segue che non era applicabile al segue che era stato fatto. lunga storia: override func prepare (for segue: UIStoryboardSegue, sender: Any?) { let gosetup = segue.destination as! Aggiornare gosetup.wherefrom = updatestring } Questo veniva fatto a tutti, quando era solo per uno. Quindi creo un booleano e ci metto gosetup al suo interno. | Questo è un errore molto comune e può verificarsi per più motivi. Il più comune è quando un IBOUTLET / IBACTION connesso a un controller di visualizzazione nello storyboard viene eliminato dal file swift ma non dallo storyboard. In caso contrario, utilizzare il registro nella barra degli strumenti in basso per scoprire qual è l'errore e diagnosticare. Puoi utilizzare i punti di interruzione e il debug per aiutarti a trovare l'errore. Per scoprire come correggere l'errore usa questo articolo che ho trovato su Google: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode | Nel mio caso, stavo usando RxSwift per eseguire la ricerca. Avevo ampiamente continuato a utilizzare un'istanza condivisa di una particolare classe all'interno del metodo onNext, che probabilmente lo rendeva inaccessibile (Mutex). Assicurati che tali casi vengano gestiti con attenzione solo quando assolutamente necessario. Nel mio caso, ho utilizzato in anticipo un paio di variabili per memorizzare in modo sicuro (e sequenziale) i valori di ritorno dei metodi dell'istanza condivisa e li ho riutilizzati all'interno del blocco onNext. | Ho avuto lo stesso problema. Nel mio caso ho appena sovrascritto il file GoogleService-Info.plist su quel percorso: Piattaforma \ ios \ YOUR_APP_NAME \ Resources \ Resources Nel mio caso i file erano presenti senza dati. | Domanda molto attiva. Guadagna 10 punti reputazione per rispondere a questa domanda. Il requisito di reputazione aiuta a proteggere questa domanda dallo spam e dalle attività di mancata risposta. Non è la risposta che stai cercando? Sfoglia altre domande contrassegnate con ios swift o fai la tua domanda.